// IODemo.cpp
#include <string>
#include <fstream>
#include <iostream>
using namespace std;

int main(int argc, char const *argv[])
{
  /* code */
  // input file stream
  // ifs 是一个给程序提供输入的文件流对象
  ifstream ifs("IODemo.in");

  // ofs 是一个让程序提供输出的文件流对象
  // 用 ofs 替换掉之前所有需要用 cout
  ofstream ofs("IODemo.out");
  int x = 0, y = 0;

  // eof - END OF FILE
  while (!ifs.eof()) {
    ifs >> x >> y; // 以行为单位的
    cout<<"x="<<x<<" y="<<y<<endl;
    ofs<<"x="<<x<<" y="<<y<<endl;
  }

  // 截取字符串
  // 1. 在 C++ 里，字符串就是字符的数组
  string hw {"Hello, World"};
  cout << hw[0] << endl;
  
  // 2. 获取字符串的长度
  cout << hw.size() << endl;
  cout << hw.length() << endl;

  // 3. 获取子字符串
  // substr(pos, len)
  // - pos 子字符串的起始位置
  // - 从 pos 开始截取多少个字符
  cout << hw.substr(2, 3) << endl;


  string test {"ABCDAB"};
  // A B C D A B
  //           ^pos
  // 截取 test 中所有长度为 2 的子字符串

  for (int pos = 0; pos + 2 <= test.size(); ++pos) {
    cout<<test.substr(pos, 2)<<endl;
  }

  return 0;
}
